import fieldTypes from '../../utils/field-types-desc';

const fieldType = fieldTypes.find(({ code }) => code === 'slider') || {};

export default {
    attributes: [
        {
            params: 'v-model',
            des: '绑定值',
            type: fieldType.valueType,
            values: '-',
            defaultVal: '-',
        },
        {
            params: 'props',
            des: '表单元素配置; 详细配置请查看下方【props 配置项】',
            type: 'Object',
            values: '-',
            defaultVal: '-',
            details: [
                {
                    title: '配置项【props】',
                    configList: [
                        {
                            params: 'type',
                            des: `表单项控件的类型(此控件的 type 固定为 "${fieldType.code}")`,
                            type: 'String',
                            values: '0 - 100',
                            defaultVal: '-',
                        },
                        {
                            params: 'value',
                            des: '表单项控件的默认值，若绑定值为空，将获取该值作为初始值',
                            type: fieldType.valueType,
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'min',
                            des: '最小值',
                            type: 'Number',
                            values: '-',
                            defaultVal: '0',
                        },
                        {
                            params: 'max',
                            des: '最大值',
                            type: 'Number',
                            values: '-',
                            defaultVal: '100',
                        },
                        {
                            params: 'step',
                            des: '步长',
                            type: 'Number',
                            values: '-',
                            defaultVal: '1',
                        },
                        {
                            params: 'size',
                            des: '尺寸大小',
                            type: 'String',
                            values: '"large" | "default" | "small"',
                            defaultVal: '"default"',
                        },
                        {
                            params: 'disabled',
                            des: '是否禁用',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'showInput',
                            des: '是否显示输入框，仅在非范围选择时有效',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'showInputControls',
                            des: '在显示输入框的情况下，是否显示输入框的控制按钮',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'true',
                        },
                        {
                            params: 'showStops',
                            des: '是否显示间断点',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'range',
                            des: '是否开启选择范围',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'showTooltip',
                            des: '是否显示提示信息',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'true',
                        },
                        {
                            params: 'formatTooltip',
                            des: '格式化提示信息',
                            type: 'Function(value)',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'vertical',
                            des: '垂直模式',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'false',
                        },
                        {
                            params: 'height',
                            des: '滑块高度，垂直模式必填',
                            type: 'String',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'tooltipClass',
                            des: 'tooltip 的自定义类名',
                            type: 'String',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'placement',
                            des: 'Tooltip 出现的位置',
                            type: 'String',
                            values: '\'top\' | \'top-start\' | \'top-end\' | \'bottom\' | \'bottom-start\' | \'bottom-end\'',
                            defaultVal: '\'top\'',
                        },
                        {
                            params: 'marks',
                            des: '标记， key 的类型必须为 number 且取值在闭区间 [min, max] 内，每个标记可以单独设置样式',
                            type: 'Object',
                            values: '-',
                            defaultVal: '-',
                        },
                        {
                            params: 'validateEvent',
                            des: '输入时是否触发表单的校验',
                            type: 'Boolean',
                            values: 'true | false',
                            defaultVal: 'true',
                        },
                    ],
                },
            ],
        },
    ],
    events: [
        {
            name: 'change',
            des: '输入框失焦后值内容修改触发的事件',
            params: '({ value }, props)',
        },
    ],
    slots: [],
    refs: [],
};
